package models;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;

import play.db.jpa.Model;
import util.TypeConveter;

@Entity
public class Campo extends Model implements TypeConveter {

	public enum TipoCampo {
		STRING, 
		DECIMAL, 
		DATE, 
		INTEGER, 
		LONG
	};

	@OneToMany(orphanRemoval=true, cascade=CascadeType.ALL)
	@JoinColumn(name="campo_id")
	private Set<Conteudo> conteudo = new HashSet<Conteudo>();

	@Column(nullable=false)
	private String nomeCampo;
	@Column(nullable=false)
	private TipoCampo tipo;

	public Set<Conteudo> getConteudo() {
		return conteudo;
	}
	
	public void addConteudo(Conteudo conteudo) {
		if (conteudo != null) {
			this.conteudo.add(conteudo);
		}
	}

	public String getNomeCampo() {
		return nomeCampo;
	}

	public void setNomeCampo(String nomeCampo) {
		this.nomeCampo = nomeCampo;
	}
	
	public void setTipo(TipoCampo tipo) {
		this.tipo = tipo;
	}
	
	public TipoCampo getTipo() {
		return tipo;
	}
	
	@Override
	public Object convert(String value) {
		return null;
	}
}
